package com.ruboweb.main;

import java.io.IOException;
import java.util.Scanner;

import com.ruboweb.domain.Perfil;
import com.ruboweb.domain.Report;
import com.ruboweb.report.ExcelGenerator;
import com.ruboweb.report.ReportUtil;

public class Start {

	@SuppressWarnings("resource")
	public Start() {

		Scanner sc = new Scanner(System.in);
		int opc;
		String perfil;
		String report;
		String ruta;

		do {
			System.out.println("\nElija opcion\n");
			System.out.println("1) Listar informes");
			System.out.println("2) Ejecutar Informe");
			System.out.println("3) Ejecutar Informe FIXED");
			System.out.println("4) Ejecutar todos los informes de un perfil");
			System.out.println("0) Salir");
			opc = sc.nextInt();

			switch (opc) {
			case 1:
				System.out
						.println("Listado de informes disponibles (PERFIL: REPORT)");
				System.out
						.println("------------------------------------------------");
				ReportUtil.mostrarModelo();
				break;

			case 2:
				System.out.println("Indique el PERFIL:");
				perfil = sc.next();
				System.out.println("Indique el REPORT:");
				report = sc.next();
				System.out.println("Indique la ruta (p.e. c://fichero.xlsx):");
				ruta = sc.next();

				try {
					new ExcelGenerator().crearExcel(ruta, perfil, report);
				} catch (IOException e) {
					e.printStackTrace();
				}

				break;

			case 3:
				try {
					new ExcelGenerator().crearExcel("c://fichero.xlsx",
							"mto_pa_2013_2015_redmine", "Todas");
				} catch (IOException e) {
					e.printStackTrace();
				}
				// Object[][] l = new ReportExecutor().ejecutarReport(perfil,
				// report).getDatos();
				// System.out.println(l.toString());

				break;

			case 4:
				System.out.println("Indique el PERFIL:");
				perfil = sc.next();

				System.out.println("Indique la ruta de destino (p.e. c://):");
				ruta = sc.next();

				Perfil p = ReportUtil.buscarPerfil(perfil);

				for (Report r : p.getReports()) {
					System.out.println("Ejecutando el report: " + r.getInforme() +"...");
					try {
						new ExcelGenerator().crearExcel(ruta + r.getInforme().replaceAll(" ", "-") + ".xlsx",
								p.getPerfil(), r.getInforme());
					} catch (IOException e) {
						e.printStackTrace();
					}
					System.out.println("Report: " + r.getInforme() + ", generado.");
				}

				// Object[][] l = new ReportExecutor().ejecutarReport(perfil,
				// report).getDatos();
				// System.out.println(l.toString());

				break;
			}
		} while (opc != 0);

	}

	public static void main(String[] args) {
		new Start();
	}

}
